﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using PlanProd.Contracts.enums;
using Web.Framework.Svc;

namespace PlanProd.Contracts
{
    [Serializable]
    [DataContract]
    public class PresupuestoProduccion : IAuditable, ILogicalRemoved
    {
        public PresupuestoProduccion()
        {
            DetalleDeProductos = new List<PresupuestoProduccionDetalleProd>();
        }

        [DataMember]
        public int Id { get; set; }

        [DataMember]
        public int TemporadaId { get; set; }

        [DataMember]
        public string Nombre { get; set; }

        [DataMember]
        public string TemporadaNombre { get; set; }

        [DataMember]
        public string TemporadaCodigoExterno { get; set; }

        [DataMember]
        public int DestinoId { get; set; }

        [DataMember]
        public string DestinoNombre { get; set; }

        [DataMember]
        public string DestinoCodigoExterno { get; set; }

        [DataMember]
        public int ProveedorId { get; set; }

        [DataMember]
        public int ProveedorIdExterno { get; set; }

        [DataMember]
        public string ProveedorNombre { get; set; }

        [DataMember]
        public int EmpresaId { get; set; }

        [DataMember]
        public EstadoAprobado Estado { get; set; }

        [DataMember]
        public bool? EstadoBool { get; set; }

        public string EstadoNombre
        {
            get { return Estado.GetDescription(); }
        }

        [DataMember]
        public DateTime? FechaAprobacion { get; set; }

        [DataMember]
        public string UserNameAprobacion { get; set; }

        [DataMember]
        public int TotalPresupuesto { get; set; }

        [DataMember]
        public int? PlanProduccionId { get; set; }

        [DataMember]
        public List<PresupuestoProduccionDetalleProd> DetalleDeProductos { get; set; }

        [DataMember]
        public DateTime AuditFechaCreacion { get; set; }

        [DataMember]
        public string AuditUserNameCreacion { get; set; }

        [DataMember]
        public DateTime? AuditFechaModificacion { get; set; }

        [DataMember]
        public string AuditUserNameModificacion { get; set; }

        [DataMember]
        public bool Removed { get; set; }
    }
}
